﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ)
	///</summary>
	[DataContract]
	public enum БазыРаспределенияЗатрат
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"f41c51c4-8d49-4d9a-8e23-1adedc3c755f\", \"Представление\":\"ПоОбъемуВыпуска\"}")]
		ПоОбъемуВыпуска = 0,//По объему выпуска
		[EnumMember(Value = "{\"Ссылка\":\"73140d8a-4bd5-44e6-8d9b-80c8b441bb8a\", \"Представление\":\"ПоОбъемуПродаж\"}")]
		ПоОбъемуПродаж = 1,//По объему продаж
		[EnumMember(Value = "{\"Ссылка\":\"0b291750-dc93-48fc-ae75-5c10790873e9\", \"Представление\":\"ПоСтоимостиЗатрат\"}")]
		ПоСтоимостиЗатрат = 2,//По стоимости затрат
		[EnumMember(Value = "{\"Ссылка\":\"8655d906-15cb-448d-80fa-a9738a3eb915\", \"Представление\":\"ПоОсновномуСырью\"}")]
		ПоОсновномуСырью = 3,//По основному сырью
		[EnumMember(Value = "{\"Ссылка\":\"644d1a20-7cbd-4c9d-bc36-c3aa4f8a7845\", \"Представление\":\"ПоНормативам\"}")]
		ПоНормативам = 4,//По нормативам
		[EnumMember(Value = "{\"Ссылка\":\"f49eff8d-92c2-4e50-98ff-81ba8fea6fea\", \"Представление\":\"Вручную\"}")]
		Вручную = 5,
	}
	public static partial class БазыРаспределенияЗатрат_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ПоОбъемуВыпуска = new Guid("de1a238e-3cdc-5f75-4d9a-8d49f41c51c4");//По объему выпуска
		public static readonly Guid ПоОбъемуПродаж = new Guid("c8809b8d-41b4-8abb-44e6-4bd573140d8a");//По объему продаж
		public static readonly Guid ПоСтоимостиЗатрат = new Guid("105c75ae-0879-e973-48fc-dc930b291750");//По стоимости затрат
		public static readonly Guid ПоОсновномуСырью = new Guid("73a9fa80-3e8a-15b9-448d-15cb8655d906");//По основному сырью
		public static readonly Guid ПоНормативам = new Guid("aac336bc-8a4f-4578-4c9d-7cbd644d1a20");//По нормативам
		public static readonly Guid Вручную = new Guid("ba81ff98-ea8f-ea6f-4e50-92c2f49eff8d");
		public static БазыРаспределенияЗатрат Получить(this БазыРаспределенияЗатрат Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static БазыРаспределенияЗатрат Получить(this БазыРаспределенияЗатрат Значение, Guid Ссылка)
		{
			if(Ссылка == ПоОбъемуВыпуска)
			{
				return БазыРаспределенияЗатрат.ПоОбъемуВыпуска;
			}
			else if(Ссылка == ПоОбъемуПродаж)
			{
				return БазыРаспределенияЗатрат.ПоОбъемуПродаж;
			}
			else if(Ссылка == ПоСтоимостиЗатрат)
			{
				return БазыРаспределенияЗатрат.ПоСтоимостиЗатрат;
			}
			else if(Ссылка == ПоОсновномуСырью)
			{
				return БазыРаспределенияЗатрат.ПоОсновномуСырью;
			}
			else if(Ссылка == ПоНормативам)
			{
				return БазыРаспределенияЗатрат.ПоНормативам;
			}
			else if(Ссылка == Вручную)
			{
				return БазыРаспределенияЗатрат.Вручную;
			}
			return БазыРаспределенияЗатрат.ПустаяСсылка;
		}
		public static byte[] Ключ(this БазыРаспределенияЗатрат Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this БазыРаспределенияЗатрат Значение)
		{
			switch (Значение)
			{
				case БазыРаспределенияЗатрат.ПоОбъемуВыпуска: return ПоОбъемуВыпуска;
				case БазыРаспределенияЗатрат.ПоОбъемуПродаж: return ПоОбъемуПродаж;
				case БазыРаспределенияЗатрат.ПоСтоимостиЗатрат: return ПоСтоимостиЗатрат;
				case БазыРаспределенияЗатрат.ПоОсновномуСырью: return ПоОсновномуСырью;
				case БазыРаспределенияЗатрат.ПоНормативам: return ПоНормативам;
				case БазыРаспределенияЗатрат.Вручную: return Вручную;
			}
			return Guid.Empty;
		}
	}
}